This invention relates to a method for managing resources allocated in a computer, wherein the allocated resources are maintained or released by time monitoring.
The execution of a specific task in a computer system often requires co-operation between several resources based on recurrent use of the hardware, software and/or memory resources. The use of resources thus refers to the allocation of the parts of the computer system for the execution of a specific task, no matter whether these parts belong to the hardware, computation or memory capacity of the computer.
The resource allocation system has been problematic in that the known computers do not comprise any particularly advanced systems for monitoring allocated resources. Especially after the completion of the task assigned to the computer, the release of all or some of the resources may fail for some reason, e.g. due to malfunction, a programming error, etc. In practice, this problem easily results in that the system runs short of certain kind of resources in the long run, or that there are needlessly allocated resources in the system for long periods of time. This in turn reduces the capacity and may finally cause the operation to cease if all resources of a certain type have been allocated for one or more tasks which have been completed a long time ago.
One solution to the problem is offered by fixed-time monitoring which can be used in cases where it is possible to determine a maximum duration for the task to be executed by the resource. The resource is allocated for the maximum period of time, after which the resource releases itself if it has not yet been released. Periodic monitoring has been used for resources allocated for an indefinite period of time or for resources allocated for a very long period of time. It is thereby checked intermittently that all resources in the system have changed tasks. If this has not happened, it is checked whether the main task is still uncompleted throughout the system, on the basis of which the resources are then released or maintained unchanged. One application of this procedure is the virtual memory management, in which the central memory is divided into pages (resources), and the use of different memory pages is monitored during the execution of a program. Unused pages are replaced with new pages from a mass memory whenever required. A disadvantage of periodic monitoring is that it loads the system and is complicated, as the monitoring procedure that checks all allocated resources has to be started intermittently, and if the system has to operate in parallel with the checking routine, a very complicated management algorithm will result as new resources are allocated all the time while old ones are released. In addition, a priority conflict occurs in the fixed-time monitoring of long tasks between the monitoring frequency and the execution if the average required allocation time is only a fraction of the time required for the entire task so that there occur needlessly allocated resources within the time monitoring. For instance, the memory pages to be replaced in the virtual memory management are not released until required, i.e. the central memory may, in principle, be filled up, which reduces the capacity of the system e.g. during the execution of background routines which do not use the virtual memory.